#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

# -------------------------------------------------------------------------- #
# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org)             #
#                                                                            #
# Licensed under the Apache License, Version 2.0 (the "License"); you may    #
# not use this file except in compliance with the License. You may obtain    #
# a copy of the License at                                                   #
#                                                                            #
# http://www.apache.org/licenses/LICENSE-2.0                                 #
#                                                                            #
# Unless required by applicable law or agreed to in writing, software        #
# distributed under the License is distributed on an "AS IS" BASIS,          #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
# See the License for the specific language governing permissions and        #
# limitations under the License.                                             #
#--------------------------------------------------------------------------- #

$: << File.dirname(__FILE__)

require 'xml-parser.rb'
require 'actions.rb'
require 'vboxrc.rb'


#Restore receives a file. This file
#is a tar containing a domain_file
#and a VBox checkpoint.

#Steps:
#1 - untar
#2 - create vm and setup
#3 - adopt state with .sav file


checkpoint_tar = ARGV[0]
dir = File.dirname(checkpoint_tar)
domain_filename = dir+"/saved_domain.xml"

`#{File.dirname(__FILE__)}/unpackState.sh #{checkpoint_tar}`
rc = $?.exitstatus


init domain_filename if rc == 0
add_domain @vmname,domain_filename if rc == 0
rc = create if rc== 0
rc = modify if rc == 0
# rc = open_mediums if rc == 0 #deprecated Vbox 4.0
rc = clone_disks if rc == 0
rc = add_controllers if rc == 0
rc = storage_attach if rc == 0
rc = adopt_state "#{dir}/checkpoint.sav" if rc == 0
puts rc
rc = start if rc == 0
exit rc
